/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package listaEnlazada;

import java.io.*;
import java.util.Date;



/**
 *
 * @author Grover
 */
class Prueba implements Serializable{
    //atributos 
    private static final long seriaVersionUID=3L;
    private transient int Datos;
    private transient Date HoraActual;

    public Prueba(int Datos) {
        this.Datos = Datos;
        this.HoraActual = new Date();
    }
    public int getDatos() {
        return Datos;
    }
    public Date getHoraActual() {
        return HoraActual;
    }
    private void writeObject(ObjectOutputStream os){
      try{
         os.defaultWriteObject(); 
         //el método por defecto
         /*ahora escribimos lo que queremos que haga*/
         os.writeInt(Datos);
         System.out.println("Serialización");
      }catch(IOException e){
         e.printStackTrace();
      }
   }
   private void readObject(ObjectInputStream is){
      try{
         is.defaultReadObject();
         Datos = is.readInt();
         HoraActual = new Date();
         System.out.println("Recuperación");
      }catch(IOException e){
         e.printStackTrace();
      }catch(ClassNotFoundException e){
         e.printStackTrace();
      }
   }
}

public class TestSer {
    public static void main(String[] args)throws Exception{
      FileOutputStream fos = new FileOutputStream("test.ser");
      ObjectOutputStream os = new ObjectOutputStream(fos);
      Prueba p = new Prueba(358);
      os.writeObject(p);
      os.close();
      FileInputStream fis = new FileInputStream("test.ser");
      ObjectInputStream is = new ObjectInputStream(fis);
      p = (Prueba) is.readObject();
      System.out.println("Datos: " + p.getDatos());
      System.out.println("Hora actual: " + p.getHoraActual());
      is.close();
    }
}
